﻿#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <opencv2/opencv.hpp>
#include <QSqlTableModel>
#include <QTimer>
#include <QtDebug>
#include <QMessageBox>
#include <QSqlError>
#include <QCoreApplication>
#include <QFileDialog>
#include <QBuffer>

using namespace cv;
using namespace std;

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void onTimeOut();
    void on_pushButton_clicked();

    void on_tabWidget_tabBarClicked(int index);

private:
    Ui::Widget *ui;

    void init();
    void ctImgShow();
    void onTableSelectChange(int row);
    void showUserPhoto();
    void ctImgRead();
    void ctImgProc();
    void ctImgSave();
    void ctImgHoughCircles();

    Mat myCtImg;
    Mat myCtGrayImg;
    QImage myCtQImage;
    QSqlTableModel *model_b;
    QSqlTableModel *model_d;
    QTimer *myTimer;
    Mat myctRGBImg;
    Mat myctGrayImg;
};

static bool createMySqlConn()
{
    QSqlDatabase sqldb = QSqlDatabase::addDatabase("QMYSQL");

    sqldb.setHostName("127.0.0.1");
    sqldb.setPort(3306);
    sqldb.setDatabaseName("mysql_tele");
    sqldb.setUserName("root");
    sqldb.setPassword("LTX970525ok!");

    qDebug() << sqldb.connectOptions();
    if(!sqldb.open()) {
        qDebug() << sqldb.lastError();
        QMessageBox::critical(0, u8"后台数据库连接失败", u8"无法创造连接！请检查排除故障后重启程序");
        exit(-1);       // 终止程序并返回-1
        return false;
    }
    return true;
}

#endif // WIDGET_H
